//给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。
//
// 示例 1:
//
// 输入: 123
//输出: 321
//
//
// 示例 2:
//
// 输入: -123
//输出: -321
//
//
// 示例 3:
//
// 输入: 120
//输出: 21
//
//
// 注意:
//
// 假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−231, 231 − 1]。请根据这个假设，如果反转后整数溢出那么就返回 0。
// Related Topics 数学
// 👍 2247 👎 0

fn main() {
    println!("{}" , std::i32::MAX);
    println!("{}" , std::i32::MIN);
    let res = Solution::reverse(-2063847412);
    println!("{}", res);
}

struct Solution;

//leetcode submit region begin(Prohibit modification and deletion)
impl Solution {
    pub fn reverse(x: i32) -> i32 {
        let tmp = x as i64;
        let sign: i32 = if tmp < 0 { -1 } else { 1 };
        let unsign_tmp = tmp * sign as i64;
        let usign_bytes_reverse: String = unsign_tmp.to_string().chars().rev().collect();
        sign *usign_bytes_reverse.parse::<i32>().unwrap_or(0)
    }
}
//leetcode submit region end(Prohibit modification and deletion)
